const joi = require('joi')

/**
 * string() 值必须是字符串
 * alphanum() 值只能是包含 a-zA-Z0-9 的字符串
 * min(length) 最小长度
 * max(length) 最大长度
 * required() 值是必填项，不能为 undefined
 * pattern(正则表达式) 值必须符合正则表达式的规则
 */

// 用户名的验证规则
const username = joi.string().required()
// 密码的验证规则
const password = joi
  .string()
  .pattern(/^[\S]{6,12}$/)
  .required()
const nickName = joi.string().required()
const phone = joi.string().alphanum().required().pattern(/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/)
const email = joi.string().required().pattern(/^(.+)@(.+)$/)
// 注册和登录表单的验证规则对象
exports.reg_login_schema = {
  // 表示需要对 req.body 中的数据进行验证
  body: {
    nickName,
    phone,
    email,
    password
  },
}

// 登录表单的验证规则对象
exports.login_schema = {
    // 表示需要对 req.body 中的数据进行验证
    body: {
      username,
      password
    },
  }

  exports.userinfo = {
    // 表示需要对 req.body 中的数据进行验证
    body: {
      id:joi.number().integer().min(1).required(),
      email:joi.string().email(),
      nickname :joi.string(),
      roleId:joi.number()
    },
  }
  exports.changePwd = {
    body:{
      id:joi.number().integer().min(1).required(),
      password
    }
  }